Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Node / ReticulumProjects / MeshChatX.git / files / meshchatx / src / frontend / js / AndroidStorageBridge.js

Displaying Raw • Download


meshchatx/src/frontend/js/AndroidStorageBridge.js e0f1f99cd1c208c5008a936230c38e448dddd45d (e0f1f99c) Text, 3.86 KB

T8b949e/**
* Android app-specific storage location (internal vs external files dir).
*/

Tff7b72import Te6edf3AndroidBridge Tff7b72from Ta5d6ff"./rnode/AndroidBridge.js"Tb4b4b4;

Tff7b72function Te6edf3pickEnvTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72typeof Tffa657window Tff7b72!== Ta5d6ff"undefined"Tb4b4b4) Tb4b4b4{
Tff7b72return Tffa657windowTb4b4b4;
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72typeof Tffa657globalThis Tff7b72!== Ta5d6ff"undefined"Tb4b4b4) Tb4b4b4{
Tff7b72return Tffa657globalThisTb4b4b4;
Tb4b4b4}
Tff7b72return Tb4b4b4{Tb4b4b4}Tb4b4b4;
Tb4b4b4}

Tff7b72function Te6edf3safeParseJsonTb4b4b4(Te6edf3rawTb4b4b4, Te6edf3fallbackTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Te6edf3raw Tff7b72== Tff7b72null Tff7b72|| Te6edf3raw Tff7b72=== Ta5d6ff""Tb4b4b4) Tb4b4b4{
Tff7b72return Te6edf3fallbackTb4b4b4;
Tb4b4b4}
Tff7b72try Tb4b4b4{
Tff7b72return Tffa657JSONTb4b4b4.Te6edf3parseTb4b4b4(Te6edf3rawTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
Tff7b72return Te6edf3fallbackTb4b4b4;
Tb4b4b4}
Tb4b4b4}

Tff7b72export Tff7b72default Tff7b72class Te6edf3AndroidStorageBridge Tb4b4b4{
Tff7b72constructorTb4b4b4(Te6edf3bridge Tff7b72= Tff7b72nullTb4b4b4, Te6edf3env Tff7b72= Tff7b72nullTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3android Tff7b72= Tff7b72new Te6edf3AndroidBridgeTb4b4b4(Te6edf3bridgeTb4b4b4, Te6edf3env Tff7b72|| Te6edf3pickEnvTb4b4b4(Tb4b4b4)Tb4b4b4)Tb4b4b4;
Tb4b4b4}

Te6edf3isAndroidHostTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3androidTb4b4b4.Te6edf3isAvailableTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3bridge Tff7b72= Tff7b72thisTb4b4b4.Te6edf3androidTb4b4b4.Te6edf3bridgeTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3bridgeTff7b72?Tb4b4b4.Te6edf3getPlatform Tff7b72=== Ta5d6ff"function"Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72return Te6edf3bridgeTb4b4b4.Te6edf3getPlatformTb4b4b4(Tb4b4b4) Tff7b72=== Ta5d6ff"android"Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72return Tff7b72typeof Te6edf3bridgeTff7b72?Tb4b4b4.Te6edf3getAndroidStorageStatus Tff7b72=== Ta5d6ff"function"Tb4b4b4;
Tb4b4b4}

Te6edf3getStatusTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3isAndroidHostTb4b4b4(Tb4b4b4)Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72nullTb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3bridge Tff7b72= Tff7b72thisTb4b4b4.Te6edf3androidTb4b4b4.Te6edf3bridgeTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3bridgeTb4b4b4.Te6edf3getAndroidStorageStatus Tff7b72!== Ta5d6ff"function"Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72nullTb4b4b4;
Tb4b4b4}
Tff7b72try Tb4b4b4{
Tff7b72return Te6edf3safeParseJsonTb4b4b4(Te6edf3bridgeTb4b4b4.Te6edf3getAndroidStorageStatusTb4b4b4(Tb4b4b4)Tb4b4b4, Tff7b72nullTb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
Tff7b72return Tff7b72nullTb4b4b4;
Tb4b4b4}
Tb4b4b4}

Te6edf3setModeTb4b4b4(Te6edf3modeTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3bridge Tff7b72= Tff7b72thisTb4b4b4.Te6edf3androidTb4b4b4.Te6edf3bridgeTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3bridgeTff7b72?Tb4b4b4.Te6edf3setAndroidStorageMode Tff7b72!== Ta5d6ff"function"Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}
Tff7b72try Tb4b4b4{
Te6edf3bridgeTb4b4b4.Te6edf3setAndroidStorageModeTb4b4b4(Te6edf3modeTb4b4b4)Tb4b4b4;
Tff7b72return Tff7b72trueTb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}
Tb4b4b4}

Te6edf3scheduleCopyToExternalAndRestartTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3bridge Tff7b72= Tff7b72thisTb4b4b4.Te6edf3androidTb4b4b4.Te6edf3bridgeTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3bridgeTff7b72?Tb4b4b4.Te6edf3scheduleCopyToExternalAndRestart Tff7b72!== Ta5d6ff"function"Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}
Tff7b72try Tb4b4b4{
Te6edf3bridgeTb4b4b4.Te6edf3scheduleCopyToExternalAndRestartTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72return Tff7b72trueTb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}
Tb4b4b4}

Te6edf3keepInternalAndDismissTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3bridge Tff7b72= Tff7b72thisTb4b4b4.Te6edf3androidTb4b4b4.Te6edf3bridgeTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3bridgeTff7b72?Tb4b4b4.Te6edf3keepInternalStorageAndDismiss Tff7b72!== Ta5d6ff"function"Tb4b4b4) Tb4b4b4{
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}
Tff7b72try Tb4b4b4{
Te6edf3bridgeTb4b4b4.Te6edf3keepInternalStorageAndDismissTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72return Tff7b72trueTb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}
Tb4b4b4}

Te6edf3restartAppTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3bridge Tff7b72= Tff7b72thisTb4b4b4.Te6edf3androidTb4b4b4.Te6edf3bridgeTb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3bridgeTff7b72?Tb4b4b4.Te6edf3restartApp Tff7b72=== Ta5d6ff"function"Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Te6edf3bridgeTb4b4b4.Te6edf3restartAppTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72return Tff7b72trueTb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
T8b949e// fall through
Tb4b4b4}
Tb4b4b4}
Tff7b72if Tb4b4b4(Tff7b72typeof Te6edf3bridgeTff7b72?Tb4b4b4.Te6edf3exitApp Tff7b72=== Ta5d6ff"function"Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Te6edf3bridgeTb4b4b4.Te6edf3exitAppTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72return Tff7b72trueTb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}
Tb4b4b4}
Tff7b72return Tff7b72falseTb4b4b4;
Tb4b4b4}

T8b949e/**
* Apply setup choice; restart when active mode differs from selection.
*/
Te6edf3applySetupChoiceTb4b4b4(Te6edf3modeTb4b4b4, Te6edf3statusTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Te6edf3statusTb4b4b4) Tb4b4b4{
Tff7b72return Tb4b4b4{ Te6edf3restartedTff7b72: Tff7b72false Tb4b4b4}Tb4b4b4;
Tb4b4b4}
Tff7b72const Te6edf3active Tff7b72= Te6edf3statusTb4b4b4.Te6edf3active_modeTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3setModeTb4b4b4(Te6edf3modeTb4b4b4)Tb4b4b4;
Tff7b72if Tb4b4b4(Tff7b72typeof Tff7b72thisTb4b4b4.Te6edf3androidTb4b4b4.Te6edf3bridgeTff7b72?Tb4b4b4.Te6edf3markAndroidStorageSetupCompleted Tff7b72=== Ta5d6ff"function"Tb4b4b4) Tb4b4b4{
Tff7b72try Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3androidTb4b4b4.Te6edf3bridgeTb4b4b4.Te6edf3markAndroidStorageSetupCompletedTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4} Tff7b72catch Tb4b4b4{
T8b949e// optional on older builds
Tb4b4b4}
Tb4b4b4}
Tff7b72if Tb4b4b4(Te6edf3active Tff7b72!== Te6edf3modeTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3restartAppTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72return Tb4b4b4{ Te6edf3restartedTff7b72: Tff7b72true Tb4b4b4}Tb4b4b4;
Tb4b4b4}
Tff7b72return Tb4b4b4{ Te6edf3restartedTff7b72: Tff7b72false Tb4b4b4}Tb4b4b4;
Tb4b4b4}
Tb4b4b4}

Tff7b72export Tff7b72function Te6edf3restartMeshChatAndroidTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3bridge Tff7b72= Tff7b72new Te6edf3AndroidStorageBridgeTb4b4b4(Tb4b4b4)Tb4b4b4;
Tff7b72return Te6edf3bridgeTb4b4b4.Te6edf3restartAppTb4b4b4(Tb4b4b4)Tb4b4b4;
Tb4b4b4}


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────